<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page language="java" import="pessoal.*" %>
<%@page language="java" import="ferramentas.*" %>
<%@page language="java" import="java.util.ArrayList" %>
<%@page language="java" import="java.util.*" %>
<%
    Query q = new Query();
    int numeroCurso = Integer.parseInt(request.getParameter("curso"));
    Curso curso = q.getCurso(numeroCurso);
%>

<%!
    public String criarTabela(ArrayList<Inscrito> inscritos) {
        boolean cor = false;
        String lista = "<th>Nº de Inscrição</th><th>Nome</th><th>Função</th><th>Origem</th><th>Polo Inscrito</th>";
        for (Inscrito inscrito : inscritos) {
            String polo = "", cidadeSede = "-";

            if (inscrito.getPoloString() != null) {
                polo = inscrito.getPoloString();
            }

            if (inscrito.getCidadeSedeString() != null) {
                cidadeSede = inscrito.getCidadeSedeString();
            }

            if (cor) {
                lista += "<tr style='background-color:#eef;border:solid thin #ccc;'>"
                        + "<td>" + inscrito.getNumero() + "</td>"
                        + "<td>"
                        + "<a href='index.jsp?conteudo=visualizar_inscricao&numero=" + inscrito.getNumero() + "&curso=" + inscrito.getNumCurso() + "' title='Data da Inscrição: " + inscrito.getData() + "'>"
                        + (inscrito.isRecursoAtivo() && inscrito.isIndeferimentoRecurso() ? "<img height='17px' title='Recurso Indeferido' src='img/recurso_indeferido.png' />" : inscrito.isRecursoAtivo() ? "<img height='17px' title='Entrou com Recurso' src='img/recurso.png' />" : "") + ""
                        + (inscrito.getHomologado() == 1 ? "<img height='17px' title='Homologado' src='img/homologar.png' />" : "") + ""
                        + (inscrito.getHomologado() == 2 ? "<img  title='Não Homologado' height='17px' src='img/nao_homologado.png' />" : "") + ""
                        + ((inscrito.getNome() + " " + inscrito.getSobrenome())) + "</a>"
                        + "</td>"
                        + "<td>" + inscrito.getModalidade() + "</td>"
                        + "<td>" + inscrito.getCidade() + "</td>"
                        + "<td>" + (inscrito.getModalidade().equals("tutor") || inscrito.getModalidade().equals("cursista") ? polo : "-") + "</td>"
                        //+ "<td>" + (inscrito.getModalidade().equals("orientador") ? cidadeSede : "-") + "</td>"
                        + "</tr>";
                cor = false;
            } else {
                lista += "<tr style='background-color:#ffe;border:solid thin #ccc;'>"
                        + "<td>" + inscrito.getNumero() + "</td>"
                        + "<td>"
                        + "<a href='index.jsp?conteudo=visualizar_inscricao&numero=" + inscrito.getNumero() + "&curso=" + inscrito.getNumCurso() + "' title='Data da Inscrição: " + inscrito.getData() + "'>"
                        + (inscrito.isRecursoAtivo() && inscrito.isIndeferimentoRecurso() ? "<img height='17px' title='Recurso Indeferido' src='img/recurso_indeferido.png' />" : inscrito.isRecursoAtivo() ? "<img height='17px' title='Entrou com Recurso' src='img/recurso.png' />" : "") + ""
                        + (inscrito.getHomologado() == 1 ? "<img height='17px' title='Homologado' src='img/homologar.png' />" : "") + ""
                        + (inscrito.getHomologado() == 2 ? "<img  title='Não Homologado' height='17px' src='img/nao_homologado.png' />" : "") + ""
                        + inscrito.getNome() + " " + inscrito.getSobrenome() + "</a>"
                        + "</td>"
                        + "<td>" + inscrito.getModalidade() + "</td>"
                        + "<td>" + inscrito.getCidade() + "</td>"
                        + "<td>" + (inscrito.getModalidade().equals("tutor") || inscrito.getModalidade().equals("cursista") ? polo : "-") + "</td>"
                        //                        + "<td>" + (inscrito.getModalidade().equals("orientador") ? cidadeSede : "-") + "</td>"
                        + "</tr>";
                cor = true;
            }
        }
        return lista;

    }

    private String criarMenuOrdenacao(String id, String[] ordenacao) {
        String menu = "";
        menu += "<div class='ordenacao'>";
        menu += "Arraste as caixas para escolher a melhor ordenação da lista de inscritos:";
        menu += "<ul id='lista_menus_topo" + id + "' class='lista_ordenacao'>";
        for (String nome_ordenacao : ordenacao) {
            if (nome_ordenacao.equals("funcao")) {
                menu += "<li id='ordem_funcao' class='ui-state-default'>Função</li>";
            }
            if (nome_ordenacao.equals("nomeusuario")) {
                menu += "<li id='ordem_nomeusuario' class='ui-state-default'>Nome</li>";
            }
            if (nome_ordenacao.equals("polo")) {
                menu += "<li id='ordem_polo' class='ui-state-default'>Polo Inscrito</li>";
            }
            if (nome_ordenacao.equals("hora")) {
                menu += "<li id='ordem_hora' class='ui-state-default'>Data de Inscrição</li>";
            }
        }
        menu += "</ul>";
        menu += "</div>";
        //menu += "<input type='button' onclick='ordenar(\"aba" + id + "\")' value='Ordenar' />";
        return menu;
    }
%>
<%
    String[] ordenacao = request.getParameterValues("ordem");

    ArrayList<Inscrito> inscritos = null;
    ArrayList<Inscrito> homologados = null;
    //ArrayList<Inscrito> aprovados = null;

    //verifica qual é o tipo do curso para verificar se mostra os polos ou cidades-sede
    if (curso.getTipo() == 4) {

        if (ordenacao == null) { // Define a ordenação das opções quando não está ordenado
            ordenacao = new String[]{"funcao", "cidade_sede", "nomeusuario", "hora"};
        }
        inscritos = q.getInscritosPorCidadeSede(numeroCurso, ordenacao);
        homologados = q.getHomologadosPorCidadeSede(numeroCurso, ordenacao);
        //aprovados = q.getInscricoesAprovadasPorCidadeSede(numeroCurso, ordenacao);

    } else {
        if (ordenacao == null) { // Define a ordenação das opções quando não está ordenado
            ordenacao = new String[]{"funcao", "polo", "nomeusuario", "hora"};
        }

        inscritos = q.getInscritosPorPolo(numeroCurso, ordenacao);
        homologados = q.getHomologados(numeroCurso, ordenacao);
        //aprovados = q.getInscricoesAprovadas(numeroCurso, ordenacao);
    }

    /*Collections.sort(inscritos, new Comparator() {
     public int compare(Object o1, Object o2) {
     Inscrito inscrito1 = (Inscrito) o1;
     Inscrito inscrito2 = (Inscrito) o2;

     return inscrito1.getModalidade().compareTo(inscrito2.getModalidade());
     }
     });*/
    int ctTutor = 0;
    int ctOrientador = 0;
    int ctCursista = 0;
    String lista = "<th>Nº de Inscrição</th><th>Nome</th><th>Função</th><th>Origem</th><th>Polo Inscrito</th>";
    boolean cor = false;

    for (Inscrito inscrito : inscritos) {
        if (inscrito.getModalidade().equals("tutor") && inscrito.isAprovado()) {
            ctTutor++;
        }
        if (inscrito.getModalidade().equals("orientador") && inscrito.isAprovado()) {
            ctOrientador++;
        }
        if (inscrito.getModalidade().equals("cursista") && inscrito.isAprovado()) {
            ctCursista++;
        }

    }

    boolean temTutor = (ctTutor != 0);
    boolean temOrientador = (ctOrientador != 0);
    boolean temCursista = (ctCursista != 0);

    if (inscritos.size() == 0) {
        lista = "Ainda não há usuários inscritos neste curso.";
    }

    out.println("<h1>Lista de Inscritos do Curso</h1>");
    out.println("<h3>" + curso.getNome() + "</h3>");
    out.println("<h4>Atenção às datas limites para o seu curso!</h4>");
    out.println("<strong>- Data limite para Homologação Preliminar: " + (curso.getHomologacaoPreFormated().equals("") || curso.getHomologacaoPreFormated() == null
            ? "Data não informada para este curso." : "às 23:59 de " + curso.getHomologacaoPreFormated()) + "</strong><br />");
    out.println("<strong>- Data limite para Homologação Final: " + (curso.getHomologacaoFinalFormated().equals("") || curso.getHomologacaoFinalFormated() == null
            ? "Data não informada para este curso." : "às 23:59 de " + curso.getHomologacaoFinalFormated()) + "</strong><br />");
    out.println("<strong>- Período Recursal: " + (curso.getInicioRecursoFormated().equals("") || curso.getInicioRecursoFormated() == null
            || curso.getFimRecursoFormated() == null || curso.getFimRecursoFormated().equals("") ? "Data não informada para este curso." : "de " + curso.getInicioRecursoFormated() + " a " + curso.getFimRecursoFormated()) + "</strong><br />");
    out.println("<strong></strong><br />");
    //out.println("<strong>- Data limite para Aprovação (1ª Etapa para Tutores ou Resultado Final de Cursistas): às 23:59 de " + q.getCurso(numeroCurso).getFimFormated() + "</strong><br /><br />");

%>
<style>
    #abas td{
        padding: 5px;
    }
    #abas table{
        float: left;
        width: 555px;
    }
    #abas .ordenacao{
        width: 150px;
        float: right;
    }

    #abas .ordenacao li{
        margin: 3px 0px;
        list-style: none;
    }

    #abas .ordenacao li:hover{
        background-color: #eef;
        background-image: none;
    }

    #abas ul.lista_ordenacao{
        /*cursor: pointer;*/
        cursor: move;
        padding-left: 0px;
    }
</style>

<div id="abas">
    <ul>
        <li><a class="link_menu_horizontal" href="#aba1">Banco de Inscritos</a></li>
        <li><a class="link_menu_horizontal"  href="#aba2">Homologados</a></li>
        <!--        <li><a class="link_menu_horizontal"  href="#aba3">Aprovados</a></li>
                <li><a class="link_menu_horizontal"  href="#aba4">Síntese</a></li>-->
        <li><a class="link_menu_horizontal"  href="#aba5">Exportação</a></li>
    </ul>
    <div class="aba" id="aba1">
        <%            out.println("<table style='border:solid thin #ccc;'>");
            out.println(criarMenuOrdenacao("1", ordenacao));
            out.println(criarTabela(inscritos));
            out.println("</table>");
            out.println("<br style='clear: both' />");
        %>
    </div>
    <div class="aba" id="aba2">
        <%
            out.println("<table style='border:solid thin #ccc;'>");
            out.println(criarMenuOrdenacao("2", ordenacao));
            out.println(criarTabela(homologados));
            out.println("</table>");
            out.println("<br style='clear: both' />");
        %>
    </div>
    <!--   <div class="aba" id="aba3">
   //        <%
       //            out.println("<table style='border:solid thin #ccc;'>");
       //            out.println(criarMenuOrdenacao("3", ordenacao));
       //            out.println(criarTabela(aprovados));
       //            out.println("</table>");
       //            out.println("<br style='clear: both' />");
       //        %>
   //    </div>
   //    <div class="aba" id="aba4">
   //        <%
       //            if (temTutor || temOrientador || temCursista) {
       //                out.println("<div id='quadro'><ul><strong>Quantitativo de Aprovações</strong>");
       //                if (temTutor) {
       //                    out.println("<li>Tutor - " + ctTutor + "</li>");
       //                }
       //                if (temOrientador) {
       //                    out.println("<li>Orientador - " + ctOrientador + "</li>");
       //                }
       //                if (temCursista) {
       //                    out.println("<li>Cursista - " + ctCursista + "</li>");
       //                }
       //                out.println("</ul></div>");
       //            }
       //        %>
       </div> -->
    <div class="aba" id="aba5">
        <img src="img/iconCSV.gif" alt="lista_aprovados" /><br />

        <strong>Arquivos para Excel</strong>
        <form method="post" action="gerarCSV?finalidadeCSV=lista_inscritos&formato=excel">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Inscritos" title="Inscrições" />
        </form>
        <form method="post" action="gerarCSV?finalidadeCSV=lista_homologados&formato=excel">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Homologados" title="Inscrições Homologadas" />
        </form>
        <form method="post" action="gerarCSV?finalidadeCSV=lista_nao_homologados&formato=excel">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Não Homologados" title="Inscrições não Homologadas" />
        </form>
        <%
            if (numeroCurso == 124 || numeroCurso == 155) {%>
        <br />
        <strong>Lista em HTML</strong>
        <form method="post" action="lista_prev_drogas.jsp?curso=155"  target="_blank">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Inscritos Prev Drogas" title="Inscrições no Curso de Prevenção ao uso de Drogas" />
        </form>
        <%  }%>

        <!--<form method="post" action="gerarCSV?finalidadeCSV=lista_aprovados&formato=excel">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Aprovados (1ª Etapa para Tutores ou Resultado Final de Cursistas)" title="Inscrições Aprovadas" />
        </form>!--><br />


        <strong>Arquivos para LibreOffice</strong>
        <form method="post" action="gerarCSV?finalidadeCSV=lista_inscritos&formato=lo">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Inscritos" title="Inscrições" />
        </form>
        <form method="post" action="gerarCSV?finalidadeCSV=lista_homologados&formato=lo">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Homologados" title="Inscrições Homologadas" />
        </form>
        <form method="post" action="gerarCSV?finalidadeCSV=lista_nao_homologados&formato=lo">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Não Homologados" title="Inscrições não Homologadas" />
        </form>
        <!--<form method="post" action="gerarCSV?finalidadeCSV=lista_aprovados&formato=lo">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Aprovados (1ª Etapa para Tutores ou Resultado Final de Cursistas)" title="Inscrições Aprovadas" />
        </form>--><br />

        <strong>Lista para Moodle</strong>
        <form method="post" action="gerarCSV?finalidadeCSV=moodle_homologados&formato=lo">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Homologados" title="Inscrições Moodle" />

        </form>

        <!--<form method="post" action="gerarCSV?finalidadeCSV=moodle_aprovados&formato=lo">
            <input type="hidden" name="curso" value="<%=numeroCurso%>" size="30" id="curso" />
            <input type="submit" value="Lista de Aprovados" title="Inscrições Moodle" />

        </form>-->
    </div>

</div>
<script>
    jQuery("#abas").tabs();

    jQuery(function() {
        $("#lista_menus_topo1").sortable({
            update: function() {
                ordenar('1');
            },
            placeholder: "ui-state-highlight"
        });
        $("#lista_menus_topo1").disableSelection();
        $("#lista_menus_topo2").sortable({
            update: function() {
                ordenar('2');
            },
            placeholder: "ui-state-highlight"
        });
        $("#lista_menus_topo2").disableSelection();
        $("#lista_menus_topo3").sortable({
            update: function() {
                ordenar('3');
            },
            placeholder: "ui-state-highlight"
        });
        $("#lista_menus_topo3").disableSelection();
    });

    function ordenar(id) {
        var order = $('#lista_menus_topo' + id).sortable('serialize', {key: 'ordem'});
        window.location.href = 'index.jsp?conteudo=lista_inscritos&curso=<%=numeroCurso%>&' + order + '#aba' + id;
    }

</script>